var express = require('express')
var app = express()
app.use(express.static('static'))

var fs = require('fs');
var path = require('path');

//设置post接口之前，处理post请求参数得中间件
app.use(express.json())
app.use( express.urlencoded({ extended:false }) )

//登录
app.post('/api/login',(req,res)=>{
    var {phone,pass}=req.body

          //读取user.json文件中的用户数据
          var filepath = path.join(__dirname, './static/json/后台管理数据.json')
          var arr = fs.readFileSync(filepath)
          var arr = arr.toString() ? JSON.parse(arr) : []


    var i = arr.findIndex((item)=>{
        return item.phone == phone&&item.pass == pass
    })
    if(i!=-1){

         res.send( {code:200, msg:'登陆成功!',} );
    }else{
        res.send( {code:400, msg:'登陆失败!'} );

    }
})


//注册
app.post('/api/register',(req,res)=>{

    var {phone} = req.body

    //读取users.json文件中的用户数据
    var filepath = path.join( __dirname, './static/json/后台管理数据.json' );
    var arr = fs.readFileSync(filepath);
    arr = arr.toString()?JSON.parse( arr ): []

      //判断新用户是否已存在
      var i = arr.findIndex((item)=>{
        return item.phone == phone;
    });

    if( i != -1 ){ //用户已存在,注册失败
        res.send({ code:400,msg:'该手机号已注册,注册失败!' })
    }else{
        //添加新用户到users.json中
        arr.push( {...req.body,ingroup:'编辑组',isadmin:true,status:true} )
        fs.writeFileSync(filepath, JSON.stringify( arr ), 'utf8' );
        res.send({ code:200,msg:'注册成功!' })
    }

})

    //get请求  分页查询
    app.get('/api/list', (req, res) => {
        //获取get类型请求参数：req.query
        var {
            page,
            count
        } = req.query
        //读取user.json文件中的用户数据
        var filepath = path.join(__dirname, './static/json/后台管理数据.json')
        var arr = fs.readFileSync(filepath)
        var arr = arr.toString() ? JSON.parse(arr) : []
        //分页
        var newarr = arr.slice((page - 1) * count, page * count);

        res.send({
            code: 200,
            msg: '请求成功',
            list: newarr
        })
    })


       //模糊搜索
       app.get('/api/search', (req, res) => {
        var {
            searchkey
        } = req.query;

        //读取user.json文件中的用户数据
        var filepath = path.join(__dirname, './static/json/后台管理数据.json')
        var arr = fs.readFileSync(filepath)
        var arr = arr.toString() ? JSON.parse(arr) : []

        var newarr = arr.filter((item) => {


            return new RegExp(searchkey).test(item.name)
        })
        res.send({
            code: 200,
            msg: '查询成功！',
            list: newarr
        })
    })

  //删除
  app.post('/api/delete',(req,res)=>{
    //获取手机号 参数
    var {name} = req.body;

    //读取user.json文件中的用户数据
    var filepath = path.join(__dirname, './static/json/后台管理数据.json')
    var arr = fs.readFileSync(filepath)
    arr = arr.toString() ? JSON.parse(arr) : []
    //查找对应的手机号用户

    var i= arr.findIndex((item)=>{
        return item.name == name;
    })
    if(i!=-1){
        arr.slice(i,1)
        fs.writeFileSync(filepath,JSON.stringify(arr),'utf8');
        var newarr = arr.slice(0,5)
        res.send({code:200,msg:'删除成功',list:newarr})
    }else{
        res.send({code:400,msg:'删除失败！'})
    }

})




app.listen(8888,()=>{
    console.log('监听在8888端口号上')
})
